import User from "../../model/user";
import {createStoreBindings} from "mobx-miniprogram-bindings";
import {timStore} from "../../store/tim";

Page({
  data: {},

  onLoad: function (options) {
    this.storeBindings = createStoreBindings(this, {
      store: timStore,
      actions: {timLogin: 'login'},// 要绑定哪个状态,会绑定到data里
    })
  },

  onUnload() {
    // 取消绑定
    this.storeBindings.destroyStoreBindings()
  },

  async handleLogin() {
    const res = await wx.getUserProfile({
      desc: "完善用户信息",
    })
    // 异常，会中断后续代码的执行
    // 错误，不会中断后续代码的执行
    wx.showLoading({
      title: "正在授权",
      mask: true
    })
    try {
      await User.login()
      // 更新用户信息到服务端
      await User.updateUserInfo(res.userInfo)
      // 获取完令牌后自动登录
      this.timLogin()
      // this.getOpenerEventChannel() 专门负责页面间通信
      const events = this.getOpenerEventChannel()
      events.emit('login',)
      // 返回上一页
      wx.navigateBack()
    } catch (e) {
      wx.showModal({
        title: "注意",
        content: "登录失败，请稍后重试",
        showCancel: false
      })
    }
    wx.hideLoading()
  },

  handleToHome() {
    // 跳转首页不能使用 wx.navigateTo
    wx.switchTab({
      url: '/pages/home/home'
    })
  }
});